/**
 * 	Copyright 2009 RJ Regenold 
 *	
 *	Licensed under the Apache License, Version 2.0 (the "License"); 
 *	you may not use this file except in compliance with the License. 
 *	You may obtain a copy of the License at 
 *	
 *		http://www.apache.org/licenses/LICENSE-2.0 
 *		
 *	Unless required by applicable law or agreed to in writing, software 
 *	distributed under the License is distributed on an "AS IS" BASIS, 
 *	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
 *	See the License for the specific language governing permissions and 
 *	limitations under the License. 
 */

package com.binarylion.puremvc.interfaces {
	
	import org.puremvc.as3.interfaces.IController;
	
	public interface IFountController extends org.puremvc.as3.interfaces.IController {
		
		/**
		 * Registers a command with the facade by using the object id found in
		 * the application context.
		 * @param noteName the notification name to register the command for
		 * @param objectId the object id of the command
		 * @throws org.as3commons.lang.IllegalArgumentError
		 */
		function registerCommandByObjectId(noteName:String, objectId:String):void;
		
		/**
		 * Registers a command with the facade.
		 * @param noteName the notification name to register the command for
		 * @param command 
		 * 			the command to register. the command can be a Class
		 * 			or a String. If it is a String, it will be validated
		 * 			against the application context to ensure that it contains
		 * 			a definition for the object. If not, it will throw an error.
		 * @throws org.as3commons.lang.IllegalArgumentError
		 */		
		function rc(noteName:String, command:*):void;
	}
}